package com.dss.code_generation.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dss.code_generation.dto.AutoDto;
import com.dss.code_generation.dto.SelectDto;
import com.dss.code_generation.vo.TablesVo;
import com.dss.code_generation.domain.Tables;

import java.util.List;

/**
 * @Description:
 * @ClassName: TablesService
 * @author: dongshoushan
 * @date: 2020年06月08日 10:14
 */
public interface ITablesService extends IService<Tables> {
    /**
     * 查询所有未生成的表
     * @return
     */
    List<TablesVo> getAll();
    /**
     * 新生成代码
     * @param autoDto
     * @return
     */
    Boolean add(AutoDto autoDto);

    /**
     * 查询所有已生成的表
     * @param pageReq
     * @return
     */
    Page<TablesVo> getList(SelectDto pageReq);

    /**
     * 忽略生成代码
     * @param autoDto
     * @return
     */
    Boolean ignoreAdd(AutoDto autoDto);

    /**
     * 重新生成代码
     * @return
     */
    Boolean regenerate(List<AutoDto> list);

    /**
     * 导出表格结构excel数据
     *
     * @return {@link List}<{@link TablesVo}>
     */
    List<TablesVo> exportTableStructureExcelData();

    /**
     * 导出excel任务
     *
     */
    void exportExcelTask(String tableName) throws Exception;

    /**
     * 删除其他表
     */
    int deleteOtherTable();

}
